home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / programming / c / tkalgebra / lib / uklad.h < prev   
Text File  |  1999-12-06  |  1KB  |  79 lines

  1. #include "macierz.h"
  2. #ifndef _UKLAD_H_
  3. #define _UKLAD_H_
  4.  
  5.  
  6. #define AUTODETECT_ 0
  7. #define GAUSS_ 1
  8. #define ORTOGONALIZACJAGS_ 2
  9.  
  10. class Uklad;
  11.  
  12. Uklad *RozwiazanieUkladu(Macierz &A, Wektor &b, char Flaga=0);
  13.  
  14. class Uklad
  15. {  protected:
  16.     double SprERR();
  17.     virtual int Rozwiaz()=NULL;
  18.     int pamiec;
  19.     public:
  20.     friend Uklad *RozwiazanieUkladu(Macierz &A, Wektor &b, char Flaga);
  21.     Wektor *x;
  22.     double Czas;
  23.     Macierz *A;
  24.     Wektor *b;
  25.     double ERR;
  26.     double SrBlad;
  27.     int Bledy;
  28.     virtual void Print(const char*)=NULL;
  29.     virtual ~Uklad()
  30.     {}
  31.  
  32. };
  33. class UkladSt: public Uklad
  34. {  protected:
  35.     Macierz *LU;
  36.     int Rozwiaz();
  37.     public:
  38.     void Print(const char*);
  39.     UkladSt(Macierz &,Wektor &);
  40.     ~UkladSt();
  41.  
  42. };
  43.  
  44. class UkladNO : public Uklad
  45. {  protected:
  46.     int ZamienK(int);
  47.     unsigned int *I_K;//informacja o kolejno¶ci kolumn
  48.     int No0_K;//informacja o ilo¶ci kolumn niezerowych
  49.     Macierz *Q;
  50.     Macierz *R;
  51.     Wektor *y;
  52.     Wektor *B;
  53.     Wektor *d;
  54.     virtual void ZnajdzB();
  55.     int Rozwiaz();
  56.     int OrtogonalizacjaGS();
  57.     public:
  58.     static double Dokladnosc;
  59.     static char Czy_Zmieniac;//0-nie, 1-tak;
  60.     UkladNO(Macierz &,Wektor &);
  61.     UkladNO();
  62.     ~UkladNO();
  63.     void Print(const char*);
  64. };
  65.  
  66. class UkladPO : public UkladNO
  67. {  protected:
  68.     void OdwrocR();
  69.     void ZnajdzB();
  70.     int Rozwiaz();
  71.     Macierz *RT1;
  72.     public:
  73.     UkladPO(Macierz &,Wektor &);
  74.     ~UkladPO();
  75. };
  76. double DokladnoscMO(Macierz &,Macierz &);
  77. #endif
  78.  
  79.